function [H H_herm s I_N I_N1_1 Hff Hff_herm sff Vff Hfb Hfb_herm] = Generate_H(fadingpaths,N,N1,N2,Oversample)

fadingpaths = fadingpaths.';

M = length(fadingpaths);

H = convmtx(fadingpaths,N);

H_herm = H'; 

s = H(:,N1+1);

I_N = eye(N);

I_N1_1 = eye(N1+Oversample) ;

Hff = H(1:N1+Oversample,1:N1+M);

Hff_herm = Hff';

sff = Hff(:,N1+1);

Vff = diag([ones(1,N1+1) zeros(1,M-1)]);

Hfb = [Hff(:,end-M+2:end) zeros(N1+Oversample,N2-M+1)];

Hfb_herm = Hfb';

end